package part9;

/**
 * @author wcj
 * @Date 2021/5/17 17:18
 * @Version 1.0
 */
public class Part94 {

    public static void t(CanFight x) {
        x.fight();
    }

    public static void w(CanSwim x) {
        x.swim();
    }

    public static void f(CanFly x) {
        x.fly();
    }

    public static void a(ActionAct x) {
        x.fight();
    }

    public static void main(String[] args) {
        Hero hero = new Hero();
        t(hero);
        w(hero);
        f(hero);
        a(hero);
    }

}

interface CanFight {

    /**
     * fight
     */
    void fight();
}

interface CanSwim {
    /**
     * swim
     */
    void swim();
}

interface CanFly {
    /**
     * fly
     */
    void fly();
}

class ActionAct {
    public void fight() {

    }
}

/**
 * 一个类可以继承一个基类和实现多个接口，但是继承的类要放在前面
 * 使用接口的目的：1，能让一个对象向上转型为多个对象；2，防止被实例化
 * 使用抽象类的目的：1，防止被实例化；
 * 使用时我们可以先考虑使用接口
 */
class Hero extends ActionAct implements CanFight, CanSwim, CanFly {

    @Override
    public void swim() {

    }

    @Override
    public void fly() {

    }
}
